﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using hercules.Models.Dados;

namespace hercules.Models.Negocio
{
    public class NegocioFuncionario
    {
        private readonly IRepositorioGenerico<Pessoa, ControleEstoqueEntities> repositorioPessoa;

        public NegocioFuncionario()
        {
            repositorioPessoa = new RepositorioGenerico<Pessoa, ControleEstoqueEntities>("chave");
        }


        public bool Inserir(Pessoa funcionario)
        {
            repositorioPessoa.Inserir(funcionario);
            return repositorioPessoa.SaveChanges() > 0;
        }

        public bool Editar(Pessoa funcionario)
        {
            Pessoa _funcionario = Obter(funcionario.idPessoa);
            _funcionario.agencia = funcionario.agencia;
            _funcionario.bairro = funcionario.bairro;
            _funcionario.banco = funcionario.banco;
            _funcionario.cep = funcionario.cep;
            _funcionario.cidade = funcionario.cidade;
            _funcionario.cnpj = funcionario.cnpj;
            _funcionario.conta = funcionario.conta;
            _funcionario.cpf = funcionario.cpf;
            _funcionario.email = funcionario.email;
            _funcionario.endereco = funcionario.endereco;
            _funcionario.estado = funcionario.estado;
            _funcionario.insc_estadual = funcionario.insc_estadual;
            _funcionario.nome = funcionario.nome;
            _funcionario.rg = funcionario.rg;

            //repositorioPessoa.Attach(funcionario);

            return repositorioPessoa.SaveChanges() > 0;
        }

        public bool Remover(Int32 codPessoa)
        {
            repositorioPessoa.Remover(funcionario => funcionario.idPessoa == codPessoa);
            return repositorioPessoa.SaveChanges() > 0;
        }

        public List<Pessoa> ObterTodos()
        {
            return repositorioPessoa.ObterTodos().ToList();
        }

        public Pessoa Obter(int codPessoa)
        {
            return repositorioPessoa.ObterEntidade(funcionario => funcionario.idPessoa == codPessoa);
        }
        public bool EqualsFuncionario(Pessoa funcionario1, Pessoa funcionario2)
        {
            //TODO: IMPLEMENTAR MÉTODO EQUALS
            return true;
        }
    }
}